<template>
  <!-- list没有数量就隐藏底部 -->
  <footer class="footer" v-if="list.length > 0">
    <span class="todo-count"
      ><strong>{{ leftCount }}</strong> item left</span
    >
    <ul class="filters">
      <li>
        <!-- 点击按钮传all过去 -->
        <a
          :class="{ selected: type === 'all' }"
          href="#/"
          @click.prevent="filter('all')"
          >All</a
        >
      </li>
      <li>
        <a
          :class="{ selected: type === 'active' }"
          href="#/active"
          @click.prevent="filter('active')"
          >Active</a
        >
      </li>
      <li>
        <a
          :class="{ selected: type === 'completed' }"
          href="#/completed"
          @click.prevent="filter('completed')"
          >Completed</a
        >
      </li>
    </ul>
    <!-- 如果有任务完成就显示按钮 -->
    <button class="clear-completed" v-show="isCompleted" @click="completed">
      Clear completed
    </button>
  </footer>
</template>

<script>
// 模板中使用vuex中计算属性$store.getters.leftCount比较麻烦可以使用辅助函数
// 引入辅助函数
import { mapGetters, mapState, mapMutations } from "vuex";
export default {
  computed: {
    // 计算没有完成的任务的数量
    ...mapGetters(["leftCount"]),
    // 获取list列表 用来计算需不需要隐藏底部 传type过来控制样式
    ...mapState(["list", "type"]),
    // 如果有任务完成就显示按钮
    ...mapGetters(["isCompleted"]),
  },
  methods: {
    // 清除已经完成的任务列表
    ...mapMutations(["completed"]),
    ...mapMutations(["filter"]),

    // 也可以用这种原始的方法
    // filter(type){
    //     this.$store.commit('filter',type)
    // }
  },
};
</script>

<style>
</style>